<?php
/**
 * @copyright 2011
 * @version $Id$
 * @access public
 * @author Oriotiori
 */
Class Default_Model_Useraccess  extends Zend_Db_Table_Abstract{
	
	protected $_name = 'useraccess';

	
	/**
	 * Model_UserAccess::CreateUserAccess()
	 * Crea un permiso
	 * @param mixed $moduleType : objeto con los datos del modulo a crear
	 * @return : regresa un objeto con los datos del modulo creado
	 */
	function createUserAccess($userAccess)
	{
		$TOUserAccess = new Default_Model_TO_UserAccess();

		$data = array(
                    'User_Id' => $userAccess['User_Id'],
                    'Module_Id' => $userAccess['Module_Id'],
                    'Creation_Date' => new Zend_Db_Expr('NOW()')
		);

		try{

			$res = $this->insert($data);

			$TOUserAccess->setUser_Id($res['User_Id']);
			$TOUserAccess->setModule_Id($res['Module_Id']);
			$data_inserted = $this->readUserAccess($TOUserAccess->getAllVars());
			return $data_inserted;

		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
		 
	}

	/**
	 * Model_ModuleType::ReadModuleType()
	 * Lee los datos del modulo
	 * @param mixed $moduleType : objeto con los datos del modulo a buscar
	 * @return
	 */
	function readUserAccess($userAccess)
	{
		$TOUserAccess = new Default_Model_TO_UserAccess();
		$x_id = $userAccess['User_Id'];
		$Module_Id = $userAccess['Module_Id'];

		try{
			$sql= $this
			->getAdapter()
			->select()
			->from(TABLE_PREFIX.$this->_name, '*')
			->where('User_Id=?', $x_id);

			$data = $this->getAdapter()->fetchAll($sql);
			$rowCount = count($data);

			if ($rowCount > 0){

				foreach($data as $dt){

					$TOUserAccess->setUser_Id($dt['User_Id']);
					$TOUserAccess->setModule_Id($dt['Module_Id']);
					$TOUserAccess->setCreation_Date($dt['Creation_Date']);
				}

				$userAccess = $TOUserAccess->getAllVars();
				return $userAccess;
			}
			else
			{
				throw new Exception('No found results.');
			}

		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}

	}

	/**
	 * Model_useraccess::deleteAllUserAccess()
	 * Borra todos los accesos para un usuario.
	 * @param mixed $userAccess: Objeto con todos los accesos asignados
	 * a un usuario.
	 * @return
	 */
	function deleteAllUserAccess ($userAccess)
	{
		$x_id = $userAccess['User_Id'];
		$where = $this->getAdapter()->quoteInto('User_Id = ?', $x_id);
		try{
			$this->delete($where);
			return $res;

		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}
	
	public final function getAdapter(){
	}
	
	
}


?>